//package Model;
//
//import java.util.ArrayList;
//import java.util.List;
//import javax.swing.table.AbstractTableModel;
//
//public class MensalidadeTableModel extends AbstractTableModel {
//
//    private static final long serialVersionUID = 1L;
//    /*
//     * Lista de Mensalidade que representam as linhas.
//     */
//    private List<Mensalidade> linhas;
//    /*
//     * Array de Strings com o nome das colunas.
//     */
//    private String[] colunas = new String[]{
//        "Valor", "Paga", "Data de Vencimento", "Data do Pagamento"};
//
//    /*
//     * Cria um MensalidadeTableModel vazio.
//     */
//    public MensalidadeTableModel() {
//        linhas = new ArrayList<Mensalidade>();
//    }
//
//    /*
//     * Cria um MensalidadeTableModel carregado com a lista de Mensalidade
//     * especificada.
//     */
//    public MensalidadeTableModel(List<Mensalidade> listaDeMensalidade) {
//        linhas = new ArrayList<Mensalidade>(listaDeMensalidade);
//    }
//
//    /*
//     * Retorna a quantidade de colunas.
//     */
//    @Override
//    public int getColumnCount() {
//        // EstÃ¡ retornando o tamanho do array "colunas".  
//        return colunas.length;
//    }
//
//    /*
//     * Retorna a quantidade de linhas.
//     */
//    @Override
//    public int getRowCount() {
//        // Retorna o tamanho da lista de Mensalidade.  
//        return linhas.size();
//    }
//
//    @Override
//    public String getColumnName(int columnIndex) {
//        // Retorna o conteÃºdo do Array que possui o nome das colunas  
//        return colunas[columnIndex];
//    }
//
//    ;  
//  
//    @Override
//    public Class<?> getColumnClass(int columnIndex) {
//        return String.class;
//    }
//
//    ;  
//  
//  
//    @Override
//    public Object getValueAt(int rowIndex, int columnIndex) {
//        Mensalidade mensalidade = linhas.get(rowIndex);
//
//        // Retorna o campo referente a coluna especificada.  
//        // Aqui é feito um switch para verificar qual é a coluna  
//        // e retornar o campo adequado. As colunas sãoas mesmas  
//        // que foram especificadas no array "colunas".  
//        switch (columnIndex) {
//
//            // Seguindo o exemplo: "Tipo","Data de Cadastro", "Nome", "Idade"};  
//            case 0:
//                return mensalidade.getValor();
//            case 1:
//                return mensalidade.isPaga();
//            case 2:
//                return mensalidade.getDataVencimento();
//            case 3:
//                return mensalidade.getDataPagamento();
//            default:
//                // Isto não deveria acontecer...  
//                throw new IndexOutOfBoundsException("columnIndex out of bounds");
//        }
//    }
//
//    @Override
////modifica na linha e coluna especificada  
//    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//        Mensalidade mensalidade = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado  
//
//        switch (columnIndex) { // Seta o valor do campo respectivo  
//            case 0:
//                mensalidade.setNome(aValue.toString());
//            case 1:
//                mensalidade.setEndereco(aValue.toString());
//            case 2:
//                mensalidade.setTel(aValue.toString());
//
//            default:
//            // Isto não deveria acontecer...               
//        }
//        fireTableCellUpdated(rowIndex, columnIndex);
//    }
//
//    //modifica na linha especificada  
//    public void setValueAt(Mensalidade aValue, int rowIndex) {
//        Mensalidade mensalidade = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado  
//
//        mensalidade.setNome(aValue.getNome());
//        mensalidade.setEndereco(aValue.getEndereco());
//        mensalidade.setTel(aValue.getTel());
//
//        fireTableCellUpdated(rowIndex, 0);
//        fireTableCellUpdated(rowIndex, 1);
//        fireTableCellUpdated(rowIndex, 2);
//
//    }
//
//    @Override
//    public boolean isCellEditable(int rowIndex, int columnIndex) {
//        return false;
//    }
//
//    public Mensalidade getMensalidade(int indiceLinha) {
//        return linhas.get(indiceLinha);
//    }
//
//    /*
//     * Adiciona um registro.
//     */
//    public void addMensalidade(Mensalidade m) {
//        // Adiciona o registro.  
//        linhas.add(m);
//
//
//        int ultimoIndice = getRowCount() - 1;
//
//        fireTableRowsInserted(ultimoIndice, ultimoIndice);
//    }
//
//    /*
//     * Remove a linha especificada.
//     */
//    public void removeMensalidade(int indiceLinha) {
//        linhas.remove(indiceLinha);
//
//        fireTableRowsDeleted(indiceLinha, indiceLinha);
//    }
//
//    /*
//     * Adiciona uma lista de Mensalidade ao final dos registros.
//     */
//    public void addListaDeMensalidade(List<Mensalidade> mensalidade) {
//        // Pega o tamanho antigo da tabela.  
//        int tamanhoAntigo = getRowCount();
//
//        // Adiciona os registros.  
//        linhas.addAll(mensalidade);
//
//        fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);
//    }
//
//    /*
//     * Remove todos os registros.
//     */
//    public void limpar() {
//        linhas.clear();
//
//
//        fireTableDataChanged();
//    }
//
//    /*
//     * Verifica se este table model esta vazio.
//     */
//    public boolean isEmpty() {
//        return linhas.isEmpty();
//    }
//}*/